Computer systems are being used today to store various types of media, such as audio data, video data, combined audio and video data, and streaming media from online sources. A user of a computer system can play audio data through the computer system using, for example, a media player application. Multiple audio files (e.g., songs or music tracks) may be played sequentially. As playback of a first audio file nears the end of the file, the audio file fades out (e.g., the playback volume of the first audio file gradually decreases to silence). As the first audio file fades out, playback of a second audio file (i.e., the next audio data file in the sequence) fades-in. During fade-in, the playback volume of the second audio file gradually increases from silence to the audio file's full volume.
Different audio files have varying amounts of silence at the beginning and ending of the audio files. These periods of silence may vary from less than a second to many seconds in length. Such variable periods of silence from one audio file to the next create problems when attempting to fade-in and fade-out audio files in the manner discussed above. For example, if an audio file fades-in over a period of five seconds and the audio file has six seconds of silence at the beginning of the file, the entire fade-in period will be silent. In another example, if an audio file fades-out over a period of five seconds and the audio file has four seconds of silence at the end of the file, the fade-out period is effectively reduced to one second (since the remaining four seconds are silent). Thus, these variable periods of silence may interfere with fade-in and/or fade-out of audio files. Inconsistent fade-in and/or fade-out of audio files can be annoying to a listener and disturbs their listening enjoyment.
Accordingly, it is desirable to provide an audio playback mechanism that fades-in and/or fades-out non-silent portions of the audio files.